The present invention relates to determining the usage of elements of a data processing system and more particularly relates to the determination of the degree of common usage and the impact of failure of elements of a data processing system
Host computer systems may perform input/output (I/O) operations against a storage unit, such as a Direct Access Storage Device (DASD), which is comprised of numerous interconnected hard disk drives (HDDs) that form a single mass storage space. In such systems, a storage controller, also referred to as a control unit, manages I/O operations between the host systems and the DASD. Examples of control units include the International Business Machines (IBM) Enterprise Storage Server, described in the publication xe2x80x9cIBM Enterprise Storage Server: Introduction and Planning Guide xe2x80x9d, IBM document no. GC26-7294-02 November 1999) and the IBM 3990 Storage Controller, described in IBM publication, xe2x80x9cIBM 3990 Storage Control Reference (Models 1, 2, and 3), IBM document no. GA32-0099-06 (1988, 1994), which publications are incorporated herein by reference in its entirety.
The hosts include a channel subsystem that directs the flow of data between the host main storage and the storage controllers. In current implementations, each host may have up to 256 channels. Each channel is identified by a channel path identifier (CHPID). A channel comprises all those individual hardware components that are used to provide a single communication path between host memory and the channel adapter 108. A channel path is defined to be a channel and all the external physical hardware components that are used to access all the I/O devices it is defined to access. A channel path comprises the physical connection from a host channel adapter to a port on a switch, such as an ESCON director, and the set of all connections from other ports on the same switch to the interface ports in the control units defined to access that channel. In current implementations, a channel path in the host may be dynamically assigned to one physical path comprising the connection links from the host adapter to the switch port, and then from other ports on the same switch to interface ports on control units attached to the same switch. The commonly assignee and co-pending U.S. patent application Ser. No. 09/407,544, entitled xe2x80x9cMethod, system, and Program Products for Managing I/O Configurations of a Computing Environment xe2x80x9d filed on Sep. 28, 1999 by P. B. Yocom, H. M. Yudenfriend, W. J. Rooney, Richard Cwiakala, which patent is incorporated herein by reference in its entirety, describes an architecture for allowing the dynamic assignment of channel paths in the host to different physical paths from the host to the control unit.
The above patent mentions that one goal of dynamically assigning host channel paths to a physical path is to find the path assignment for a channel path the provides the best availability, i.e., avoids any single point of failures. The Operating System that is reconfiguring the channel paths requires a way to determine the extent to which two or more channels share system elements and the degree to which each of those shared elements would impact system operations in the event of failure. Furthermore, this information is required in a machine independent form that does not require the Operating System to be aware of specific aspects of the hardware and microcode elements involved (i.e. constant changes to the program to accommodate new machines).
The present invention provides a channel-subsystem call (CHSC) instruction using the Compare-Channel-Components command that allows the Operating System to request that the machine provide information about the degree to which element usage is in common between selected channels, and to provide an indication of the relative impact in the event of failure for those elements. This information allows the Operating System to select paths which minimize the degree of impact of failures in elements that are associated with the channels being considered for dynamic configuration changes. The present invention further provides the Operating System with a mechanism that provides machine independent information about the existence of common hardware elements between channels, and an indication of the relative scope of failure in those elements.
It is an object of the present invention to determine hardware elements which are common to channels in a data processing system.
It is another object of the present invention to provide an initialization program that builds a bit mask representing an arbitrary hierarchy of hardware elements of comprising a channel to be compared, and to provide a comparison program which determines hardware elements that are common to the hardware elements of the channels being compared and which gives comparison results whose value indicates the impact of the failure of the common hardware elements.